Other Protocols
The following protocols are available globally.
-
A protocol that feature subclasses (i.e. those already conforming to the
MGLFeature
protocol) conform to if they represent clusters.Currently the only class that conforms to
MGLCluster
isMGLPointFeatureCluster
(a subclass ofMGLPointFeature
).To check if a feature is a cluster, check conformity to
MGLCluster
, for example:
See morelet shape = try! MGLShape(data: clusterShapeData, encoding: String.Encoding.utf8.rawValue) guard let pointFeature = shape as? MGLPointFeature else { throw ExampleError.unexpectedFeatureType } // Check for cluster conformance guard let cluster = pointFeature as? MGLCluster else { throw ExampleError.featureIsNotACluster } // Currently the only supported class that conforms to `MGLCluster` is // `MGLPointFeatureCluster` guard cluster is MGLPointFeatureCluster else { throw ExampleError.unexpectedFeatureType }
-
Data source for
See moreMGLComputedShapeSource
. This protocol defines two optional methods for fetching data, one based on tile coordinates, and one based on a bounding box. Classes that implement this protocol must implement one, and only one of the methods. Methods on this protocol will not be called on main thread, they will be called on the caller’srequestQueue
.Declaration
Objective-C
@protocol MGLComputedShapeSourceDataSource <NSObject>
Swift
protocol MGLComputedShapeSourceDataSource : NSObjectProtocol
-
Optional methods about significant events when creating a snapshot using an
See moreMGLMapSnapshotter
object.Declaration
Objective-C
@protocol MGLMapSnapshotterDelegate <NSObject>
Swift
protocol MGLMapSnapshotterDelegate : NSObjectProtocol
-
The
See moreMGLObservable
protocol declares methods that conforming classes should implement should they want to observe low-level events of typeMGLEvent
. Currently onlyMGLMapView
implementsMGLObservable
.Declaration
Objective-C
@protocol MGLObservable
Swift
protocol MGLObservable
-
The
See moreMGLOfflineStorageDelegate
protocol defines methods that a delegate of anMGLOfflineStorage
object can optionally implement to transform various types of URLs before downloading them via the internet.Declaration
Objective-C
@protocol MGLOfflineStorageDelegate <NSObject>
Swift
protocol MGLOfflineStorageDelegate : NSObjectProtocol
-
Declaration
Objective-C
@protocol MGLStylable <NSObject>
Swift
protocol MGLStylable : NSObjectProtocol